# 定义交叉编译器路径
CC=/home/elf/work/ELF2-linux-source/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc

# 生成可执行文件 app
project: JY61P.o uart.o pid.o pwm_ctrl.o gpio_only.o gpio_dir.o main.o
	$(CC) -o project JY61P.o uart.o pid.o pwm_ctrl.o gpio_only.o gpio_dir.o main.o

# 编译 jy61p 模块
JY61P.o: JY61P.c JY61P.h
	$(CC) -c JY61P.c

# 编译 uart 模块
uart.o: uart.c
	$(CC) -c uart.c 

# 编译 pid 模块
pid.o: pid.c pid.h
	$(CC) -c pid.c

# 编译 pwm 模块
pwm_ctrl.o: pwm_ctrl.c pwm_ctrl.h
	$(CC) -c pwm_ctrl.c

# 编译 gpio_only 模块

gpio_only.o: gpio_only.c gpio_only.h
	$(CC) -c gpio_only.c

# 编译 gpio138 模块	
gpio_dir.o: gpio_dir.c gpio_dir.h
	$(CC) -c gpio_dir.c


# 编译主程序入口 main 模块
main.o: uart.o JY61P.o JY61P.h pid.o pwm_ctrl.o gpio_dir.o gpio_only.o
	$(CC) -c JY61P.c uart.c pid.c pwm_ctrl.c gpio_only.c gpio_dir.c main.c

# 清除编译生成的目标文件和可执行文件
clean:
	rm -f project *.o
